//
//  EWxChatMgrChatDelegate.h
//  WXIMSDK
//  聊天相关功能的异步回调
//  Created by vince on 14-9-5.
//  Copyright (c) 2014年 网信金融集团. All rights reserved.
//

#import <Foundation/Foundation.h>


#import "ChatMessage.h"


/*!
 @protocol
 @brief 本协议包括：发送消息时的回调、接收到消息时的回调等其它操作
 @discussion
 */
@protocol EWxChatMgrChatDelegate <NSObject>

@optional

/*!
 @method
 @brief             发送消息的回调
 @discussion
 @param             messageId  将要发送的消息对象Id
 @param             state    ChatMsgState枚举类型描述
 @param             error    失败错误描述信息
 @result
 */
- (void)sendMessageRspState:(ChatMsgState)state messageId:(NSString *)messageId error:(NSString *)error;



/*!
 @method
 @brief 收到别人发来的新消息回调
 @param msgType     ChatMsgBody_Text         1   //文本类型             message： ChatTextMessage
                    ChatMsgBody_Image        2   //图片类型             message： ChatPhotoMessage
                    ChatMsgBody_Video        3   //视频类型             message： ChatVideoMessage
                    ChatMsgBody_Voice        4   //语音类型             message： ChatAudioMessage
                    ChatMsgBody_File         5   //文件类型             message： ChatFileMessage
                    ChatMsgBody_SelfDefine,  //大于100为自定义消息类型    message： ChatCustomMessage
 @discussion
 */
- (void)didReceiveMessageType:(NSUInteger)msgType messageObj:(id)message;

/*!
 @method
 @brief 收到别人发来的自定义消息的回调
 @param message      消息对象
 @discussion 触发
 */
- (void)didCustomerMessageRecieved:(ChatMessage *)msg;

/*!
 @method
 @brief 对方（好友）收到消息的回调
 @param message      消息对象
 @discussion 触发
 */
- (void)didRecipientRecieved:(NSString *)msgId recipientId:(NSString *)recipientId;







/*!
 @method
 @brief SDK接收到消息时, 下载附件成功或失败的回调
 @discussion SDK接收到消息时, 有以下两种情况:
     1. 如果是带缩略图的消息时(图片或Video), 会自动下载缩略图,
     2. 如果是语音消息时, 会自动下载语音附件,
 @param message  下载完成的消息对象
 @param error    若附件下载成功, error为nil, 若下载失败, 则会返回相应的error信息
 @result
 */
- (void)didMessageAttachmentsStatusChanged:(ChatMessage *)message error:(NSError *)error;


@end
